package TDA;

/**
 * La estructura recibe elementos con una prioridad asociada, y permite
 * recuperar el elementos con mayor prioridad o menor prioridad
 */
public interface ColaPrioridadTDA<E> {
	void InicializarCola();
	/**
	 * Agrega el elemento e con la prioridad asociada p
	 */
	void AgregarElemento(E e, double p);
	/**
	 * Recupera el valor del elemento con mayor prioridad	
	 */
	E RecuperarMaxElemento() throws Exception;
	/**
	 * Recupera el valor del elemento con menor prioridad	
	 */
	E RecuperarMinElemento() throws Exception;
	/**
	 * Recupera la prioridad del elemento con mayor prioridad	
	 */
	double RecuperarMaxPrioridad() throws Exception;
	/**
	 * Recupera la prioridad del elemento con menor prioridad	
	 */
	double RecuperarMinPrioridad() throws Exception;
	/**
	 * Elimina el elemento con mayor prioridad	
	 */
	void EliminarMaxPrioridad();
	/**
	 * Elimina el elemento con menor prioridad	
	 */
	void EliminarMinPrioridad();
	/**
	 * Devuelve true si la cola no tiene elementos y false en caso contratrio
	 */
	boolean ColaVacia();

}
